Prefiltering in MIMO Receiver

ABSTRACT

Data signals transmitted by a plurality of transmitting antennas over a radio channel are demodulated. The method comprises receiving ( 202 ) on a plurality of receiving antennas, a data signal and a reference signal, the contents of the reference signal being known a priori to the receiver. The contents of the reference signal are used for calculating ( 204 ) an estimated polynomial channel matrix. A polynomial pre-filter matrix is calculated ( 206, 208 ) by a decomposition of the estimated polynomial channel matrix into a product of a paraunitary polynomial matrix and an upper triangular polynomial matrix with minimum phase filters on its main diagonal, where the polynomial pre-filter matrix is obtained by calculating the paraconjugate of the paraunitary polynomial matrix. The received data signal is demodulated ( 212 ) where the received data signal is multiplied with the calculated polynomial pre-filter matrix.

TECHNICAL FIELD

The field of the present disclosure is that of controlling a multiple input multiple output, MIMO, receiver. Specifically, calculations associated with determining the characteristics of the radio channel between a transmitter and the MIMO receiver in order to improve performance when demodulating received signals.

BACKGROUND

In mobile radio communication systems that use Multi-User MIMO, MU-MIMO, several users are scheduled to transmit simultaneously during the same time and frequency interval. These users can be distinguished by allocating different, and preferably orthogonal, reference signals to them such that all channels from all transmit antennas to all receive antennas can be estimated. The reference signals, or training sequence, are sequences known to the receiver and they are transmitted together with user signals such that the receiver can estimate distortions of the received signal after it is transmitted.

MU-MIMO forms part of, e.g., the third generation partnership project, 3GPP, standards including the global system for mobile communication, GSM, as well as the long term evolution, LTE, standard.

A radio communication between a UE and a base-station will be affected by multi path propagation, fading, frequency errors, round trip times etc. This communication channel is often referred to as an air interface, and causes bit and block errors on information transmitted. A receiver is designed in order to reduce bit error and block error rates, which among others, includes channel estimation, demodulation and decoding blocks. Other processing blocks commonly used in uplink receivers includes spatial and temporal whitening and pre-filtering, as illustrated in FIG. 3.

The received signal in a MIMO system with N transmitters and M receiver antennas subject to an ISI channel can be described as

$\begin{matrix} {{Y(n)} = {{{\sum\limits_{k = 0}^{L}\; {{H(k)}{S\left( {n - k} \right)}}} + {W(n)}} = {{{H\left( z^{- 1} \right)}{S(n)}} + {W(n)}}}} & (1) \end{matrix}$

where W(n) is a M×1 vector with additive noise and interference, S(n) is a N×1 vector with transmitted signals

S(n)=[s _(i)(n) s ₂(n) K s _(N)(n)]^(T)  (2)

and H(z⁻¹) is an M×N channel matrix with polynomial entries in the unity delay operator z⁻¹, z⁻¹s(n)=s(n−1), such that the element in row i and column j equals

h _(i,j)(z ⁻¹)=h _(i,j,0) +h _(i,j,1) z ⁻¹ +h _(i,j,2) z ⁻¹ +K+h _(i,j,L) z ^(−L)  (3)

A polynomial in the unity delay operator is thus a compact description of a time invariant FIR filter.

Polynomial QR decomposition is described in the prior art:

-   J. Foster, J. McWhriter and J. Chambers, “A polynomial matrix QR     decomposition with application to MIMO channel equalization”,     Forty-First Asilomar Conference on Signals, Systems and Computers,     (ACSSC 2007), Pacific Grove, Calif., November 4-7, pp. 1379-1383, -   M. Davies, S. Lambotharan, and J. Foster, “A polynomial QR     decomposition based turbo equalization technique for frequency     selective MIMO channels”, Proceedings of 2009 69th Vehicular     Technology Conference (VTC 2009), Barcelona, Spain, 2009, and -   D. Cescato and H. Bölcskei, “QR decomposition of Laurent polynomial     matrices sampled on the unit circle”, presented at IEEE Transactions     on Information Theory, 2010, pp. 4754-4761.

Using polynomial QR decomposition, as described in the prior art, of the channel matrix results in

Q(z ⁻¹)R(z ⁻¹)=H(z ⁻¹)  (4)

where R(z⁻) is an upper triangular polynomial matrix of size N×N

$\begin{matrix} {{R\left( z^{- 1} \right)} = \begin{bmatrix} {r_{1,1}\left( z^{- 1} \right)} & {r_{1,2}\left( z^{- 1} \right)} & \Lambda & {r_{1,N}\left( z^{- 1} \right)} \\ 0 & {r_{2,2}\left( z^{- 1} \right)} & \; & M \\ M & \; & O & \; \\ 0 & K & 0 & {r_{N,N}\left( z^{- 1} \right)} \end{bmatrix}} & (5) \end{matrix}$

and Q(z⁻) is a paraunitary polynomial matrix of size M×N. A matrix Q(z⁻) is a paraunitary polynomial matrix if

Q(z ⁻¹)Q* ^(T)(z)=I _(M),

Q* ^(T)(z)Q(z ⁻¹)=I _(N)  (6)

where I_(M) and I_(N) are unitary matrices of size M and N, respectively. The paraconjugate of a matrix is defined as

{tilde over (Q)}(z ⁻¹)

Q* ^(T)(z)  (7)

where Q*^(T)(z) denotes a matrix with conjugate of the coefficients, z⁻¹ replaced by z and transpose of the matrix Q(z⁻¹). From (4) and (6) follows that a multiplication of (1) with {tilde over (Q)}(z⁻¹) results in

Y _(P)(n)={tilde over (Q)}(z ⁻¹)Y(n)=R(z ⁻¹)S(n)+{tilde over (Q)}(z ⁻¹)W(n)  (8)

i.e. a signal with upper triangular channel matrix R(z⁻¹). The multiplication with the polynomial matrix {tilde over (Q)}(z⁻¹) is referred to as a MIMO pre-filter.

Assume that the additive noise and interference W(n) is temporally white and uncorrelated between the antenna branches i.e.

E{W(n)W* ^(T)(n−m)}=I _(M)·δ(m)  (9)

This can e.g. be accomplished by spatial-temporal whitening prior to (1), as illustrated by the whitening function 302 in FIG. 3. Since {tilde over (Q)}(z⁻¹) is paraunitary, the whiteness and uncorrelateness of the additive nose and interference in (8) is preserved i.e.

E{{tilde over (Q)}(z ⁻¹)W(n)({tilde over (Q)}(z)W(n−m))*^(T) }={tilde over (Q)}(z ⁻¹){tilde over (Q)}* ^(T)(z)·δ(m)=I _(N)·δ(m)  (10)

A turbo equalizer can now be used for equalization and demodulation of the transmitted symbols in S(n), e.g. as outlined in Davies et al.

A polynomial decomposition is proposed in Foster et al. which is based on Givens rotations. Here several iterations are needed in order for the QR decomposition to converge.

A polynomial QR-decomposition is also described in Cescato and Bölcskei. Here, the channel H(ω_(n))=H(z⁻¹)|_(z=e) _(jw) _(n) is available for a number of discrete frequencies ω_(n). A QR-decomposition of these channel matrices is described such that an interpolation to any frequency is available.

The complexity of a demodulator typically increases with the length of the radio channel. In order to reduce computational complexity, a short channel model is beneficial. With a minimum phase channel model, most of the energy is concentrated in the first taps of the channel. However a polynomial QR decomposition as done in Foster et al. is based upon Givens rotations which do not guarantee minimum phase channel after pre-filtering.

SUMMARY

In order to mitigate at least some of the drawbacks as discussed above, there is provided in a first aspect a method in a radio receiver for demodulating data signals transmitted by a plurality of transmitting antennas over a radio channel. The method comprises receiving on a plurality of receiving antennas, a data signal and a reference signal, the contents of the reference signal being known a priori to the receiver. The contents of the reference signal are used for calculating an estimated polynomial channel matrix. A calculation is then made of a decomposition of the estimated polynomial channel matrix into a product of a paraunitary polynomial matrix and an upper triangular polynomial matrix with minimum phase filters on its main diagonal. A polynomial pre-filter matrix is calculated as the paraconjugate of this paraunitary polynomial matrix. The received data signal is demodulated where the received data signal is multiplied with the calculated polynomial pre-filter matrix.

In some embodiments, the calculation of the decomposition comprises:

-   -   assigning, to the first column of the paraunitary polynomial         matrix, a normalized version of the first column of the         estimated polynomial channel matrix, and for each current column         from a second column to a last column of the channel matrix:     -   calculating projections of the current column of the estimated         polynomial channel matrix on the previous columns of the         paraunitary polynomial matrix,     -   calculating a difference polynomial vector as the difference         between the current column of the estimated polynomial channel         matrix and a product of the calculated projections multiplied by         the previous columns of the paraunitary polynomial matrix, and     -   assigning, to the current column of the paraunitary polynomial         matrix, a normalized version of the calculated difference         polynomial vector.

In some embodiments, the calculation of the decomposition comprises:

-   -   assigning, to an auxiliary polynomial matrix, the elements of         the estimated polynomial channel matrix, and for each current         column from a first column to a last column:     -   assigning, to the current column of the paraunitary polynomial         matrix, a normalized version of the current column of the         auxiliary polynomial matrix,     -   calculating projections of the auxiliary polynomial matrix on         the current column of the paraunitary polynomial matrix,     -   updating the auxiliary polynomial matrix by subtracting a         product of the current column of the paraunitary polynomial         matrix and the calculated projections from the auxiliary         polynomial matrix.

In other words, is a MIMO pre-filter in a receiver is provided which results in a channel matrix which is upper triangular and with minimum phase filters on its main diagonal. A minimum phase polynomial has the following energy compaction property: for any the sum of the energy contained in the first k taps is larger than the energy contained in the first k taps of any other polynomial having the same spectrum. The polynomial coefficients correspond to channel tap values in the equalizer of a receiver in which the method is realized. Therefore, the MIMO pre-filter of the present disclosure reduces the channel to a triangular form while at the same time reshapes the diagonal entries by compacting the channel energy. Both triangularization and energy compaction are very useful properties in order to reduce the computational complexity of the demodulator of a receiver in which the method is realized.

Such a MIMO pre-filter is an essential component in many practical MIMO or MU-MIMO Joint Detection receivers. For example, it can be used in high performance joint detection UL and DL VAMOS receivers. Advantages that are provided by the present disclosure include the fact that it provides simultaneous triangularization and channel re-shaping for energy compaction. The latter property is a key in order to efficiently cope with ISI. Furthermore, low computational complexity is provided. More specifically, as will be elucidated further below, the calculations require only one spectral factorization and one long division per transmitted layer in order to calculate the pre-filter. It is to be noted that many of the algorithms available in the prior art are not practical for implementation in typical mobile communication terminal or radio base station digital signal processing hardware. The present disclosure provides algorithms that are readily implemented in fixed point digital signal processors.

In a second aspect there is provided a radio receiver for demodulating data signals transmitted by a plurality of transmitting antennas over a radio channel. The receiver comprises control and communication circuitry configured to receive, on a plurality of receiving antennas, a data signal and a reference signal, the contents of the reference signal being known a priori to the receiver, calculate, using the contents of the reference signal, an estimated polynomial channel matrix, calculate a decomposition of the estimated polynomial channel matrix into a product of a paraunitary polynomial matrix and an upper triangular polynomial matrix with minimum phase filters on its main diagonal, calculate a polynomial pre-filter matrix as the paraconjugate of the paraunitary polynomial matrix and demodulate the received data signal where the received data signal is multiplied with the calculated polynomial pre-filter matrix.

In a third aspect there is provided a computer program product comprising software instructions that are configured, when executed in a processing device, to perform the method of the first aspect.

The effects and advantages of the second and third aspects correspond to those summarized above in connection with the first aspect.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically illustrates a radio receiver,

FIG. 2 is a flow chart of a method in a receiver,

FIG. 3 illustrates schematically functional blocks of a radio receiver,

FIG. 4 is a flow chart of a method in a receiver,

FIG. 5 shows graphs of radio channel characteristics,

FIG. 6 shows graphs of radio channel characteristics, and

FIG. 7 shows graphs of radio channel characteristics.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 1 illustrates schematically a MIMO enabled mobile communication terminal 100 comprising a processor 102, a memory 104, radio frequency, RF, receiving and transmitting circuitry 106 and a plurality of antenna elements 111. Radio communication via the antennas 111 is realized by the RF circuitry 106 controlled by the processor 102, as the skilled person will understand. The processor 102 makes use of software instructions 105 stored in the memory 104 in order to control all functions of the terminal 100, including the functions of receiver circuitry in the RF circuitry 106 to be described in detail below with regard to demodulation. In other words, at least the RF circuitry 106, the processor 102 and the memory 104 form parts of control and communication circuitry that is configured to control demodulation as summarized above and described in detail below. Further details regarding how these units operate in order to perform normal functions within a mobile radio communication system, are outside the scope of the present disclosure and are therefore not discussed further.

Turning now to FIG. 2 and FIG. 3, a method in a radio receiver for demodulating data signals transmitted by a plurality of transmitting antennas over a radio channel will be described.

In a reception step 202, a data signal and a reference signal is received on a plurality of receiving antennas. The contents of the reference signal are known a priori to the receiver. For example, in an implementation in a GSM system, the reference signal can be the training sequence that is transmitted in a data burst and in a LTE system implementation it can be the reference signals that form part of a sub-frame. In a calculation step 204, a calculation of an estimated polynomial channel matrix is made using the contents of the reference signal. The calculation of the estimated polynomial channel matrix is followed by a calculation of a polynomial pre-filter matrix. A calculation is done of a decomposition 206 of the estimated polynomial channel matrix into a product of a paraunitary polynomial matrix and an upper triangular polynomial matrix with minimum phase filters on its main diagonal. The polynomial pre-filter matrix is then calculated 208 as the paraconjugate of the paraunitary polynomial matrix. The received data signal is then demodulated in a demodulation step 212, where the received data signal is multiplied with the calculated polynomial pre-filter matrix.

A calculation can be made, in an optional third calculation step 210 prior to the demodulation step 212, of a pre-filtered polynomial channel matrix by multiplying the estimated polynomial channel matrix with the polynomial pre-filter matrix, thereby making the pre-filtered polynomial channel matrix upper triangular and with minimum phase filters on its main diagonal. In such cases, the demodulation step 212 also includes using this pre-filtered polynomial channel matrix as the channel model in the demodulation. The use of the pre-filtered polynomial channel matrix as the channel model in the demodulation can involve calculating the difference between the received data signal and symbol candidates filtered with the pre-filtered polynomial channel matrix.

This method can be illustrated in a block function, as presented in FIG. 3. Antenna data, i.e. data signals and reference signals, are received and are subject to spatial and temporal whitening 302. The output of this whitening procedure is provided to a channel estimation function 304, which in turn provides output to a pre-filter calculation function 306. The output of the pre-filter calculation function 306 is used in a pre-filtering function 308 as well as in a demodulation function 310. The output from the demodulation function 310 is then decoded into user data in a decoder function 312.

Turning now to FIG. 4, a more detailed description will be given of examples of calculations of MIMO pre-filters. The calculations are based on polynomial QR-decomposition, spectral factorizations and long divisions, and the sequence of steps is as follows:

In an initialisation step 402, a column counter k is set to the first column.

In a column setting step 404, column k of the channel matrix is selected for processing.

In a first calculation step 406, the square of the second norm of one column is calculated.

In a second calculation step 408, spectral factorization is performed.

In a third calculation step 410, long division is performed.

In a fourth calculation step 412, column k of a paraunitary polynomial matrix is calculated.

If all columns have been considered, as checked in a decision step 414, the paraunitary polynomial matrix is available and used in a calculation step 415 where the pre-filter matrix is obtained as the paraconjugate of the paraunitary polynomial matrix. The channel after pre-filter is obtained in a fifth calculation step 416.

If it is found, in the checking step 414, that not all columns have been considered, preparations for processing the next column is performed in an updating step 418 where matrix values are updated in preparation for calculation of values for next column. k is then incremented in an increment step 420, whereupon the procedure returns to the column setting step 404.

In the following, details will be presented of the different steps in FIG. 4. Two alternative polynomial QR decompositions can be used. First, a description is given of a polynomial QR decomposition based upon a Classical Gram-Schmidt, CGS, procedure and secondly a Modified Gram Schmidt, MGS, is described. Descriptions of CGS and MGS algorithms for non-polynomial matrices can e.g. be found in Davies et al.

Both in the CGS and in the MGS, spectral factorizations and long divisions are used. A short description of the spectral factorization is given below.

When multiplying polynomial, the polynomial degree of the result is the sum of the degrees of the involved polynomials. In both CGS and MGS, the degrees of the resulting polynomials increase with each new column of. Polynomial truncations are described below for both CGS and MGS.

The channel after pre-filter is calculated as a polynomial multiplication between the calculated pre-filter and the channel estimate as also illustrated in FIG. 4.

Polynomial QR Decompositions Classical Gram Schmidt

The first column q₁(z⁻¹) of Q(z⁻¹) is defined as a normalized version of the first column h₁(z⁻¹) of H(z⁻¹). This normalization is done with a scalar minimum phase polynomial h_(MP,1)(z⁻¹), i.e. a polynomial with all roots located inside the unit circle. This minimum phase polynomial is calculated from a spectral factorization of the scalar squared second norm of the first column h₁(z⁻¹) of H(z⁻¹), i.e.

$\begin{matrix} {{s_{1}\left( z^{- 1} \right)} = {{{h_{1}^{*T}(z)}{h_{1}\left( z^{- 1} \right)}} = {\sum\limits_{i = 1}^{M}\; {{h_{i\; 1}^{*}(z)}{h_{i\; 1}\left( z^{- 1} \right)}}}}} & (11) \end{matrix}$

such that

h _(MP,1)(z ⁻¹)=MinPhaseFactor{s ₁(z ⁻¹)}.  (12)

See below for more details about spectral factorizations.

The inverse of this minimum phase polynomial in (12) is approximated by a finite impulse response, FIR, polynomial after long division,

$\begin{matrix} {{\frac{1}{h_{{MP},1}\left( z^{- 1} \right)} \approx {h_{{MPinv},1}\left( z^{- 1} \right)}} = {h_{{MPinv},1,0} + {h_{{MPinv},1,1}z^{- 1}} + K + {h_{{MPinv},1,L_{LD}}{z^{- L_{LD}}.}}}} & (13) \end{matrix}$

Here, the length of the FIR approximation is considered as a design variable which must be selected with care. Now, the elements q_(i,1)(z⁻¹), for i=1, K, M, of the first column of Q(z⁻¹) are calculated as

q _(i,1)(z ⁻¹)=h _(MPinv,1)(z ⁻¹)h _(i1)(z ⁻¹),  (14)

for i=1, K, M, and

r _(1,1)(z ⁻¹)=h _(MP,1)(z ⁻¹).  (15)

The remaining columns of Q(z⁻¹) should now be calculated. These columns q_(k)(z⁻¹) of Q(z⁻¹) will be sequentially calculated, with k=2, K, N. Start by setting k=2 and calculate column k of R(z⁻¹) as the projection of H(z⁻¹) on the previously calculated column of Q(z⁻¹) i.e.

r _(j,k)(z ⁻¹)=q _(j)*^(T)(z)h _(k)(z ⁻¹)  (16)

for j=1, K, k−1. Use these projections in order to calculate a polynomial vector a_(k)(z⁻¹) of the difference between column k of H(z⁻¹) and (16) multiplied by previously calculated column of Q(z⁻¹) i.e.

$\begin{matrix} {{a_{k}\left( z^{- 1} \right)} = {{h_{k}\left( z^{- 1} \right)} - {\sum\limits_{i = 1}^{k - 1}\; {{r_{i,k}\left( z^{- 1} \right)}{{q_{i}\left( z^{- 1} \right)}.}}}}} & (17) \end{matrix}$

Column q_(k)(z⁻¹) of Q(z⁻¹) is defined as a normalized version of a_(q)(z⁻¹) for k>2. This normalization is done with a scalar minimum phase polynomial a_(MP,k)(z⁻¹) which is calculated from a spectral factorization of the squared second norm of the column vector a_(k)(z⁻¹). Denote this squared second norm as

$\begin{matrix} {{s_{k}\left( z^{- 1} \right)} = {{{a_{k}^{*T}(z)}{a_{k}\left( z^{- 1} \right)}} = {\sum\limits_{i = 1}^{M}\; {{a_{i,k}^{*}(z)}{a_{i,k}\left( z^{- 1} \right)}}}}} & (18) \end{matrix}$

Also denote the minimum phase factor polynomial of (11) as

a _(MP,k)(z ⁻¹)=MinPhaseFactor{s _(k)(z ⁻¹)}  (19)

See below for more details about spectral factorizations.

The inverse of this minimum phase polynomial in (12) is approximated by a FIR polynomial after long division as

$\begin{matrix} {{\frac{1}{a_{{MP},k}\left( z^{- 1} \right)} \approx {a_{{MPinv},k}\left( z^{- 1} \right)}} = {a_{{MPinv},k,0} + {a_{{MPinv},k,1}z^{- 1}} + K + {a_{{MPinv},k,L_{LD}}{z^{- L_{LD}}.}}}} & (20) \end{matrix}$

Since a_(MP,k)(z⁻¹) is minimum phase this FIR approximation is numerically good. Now, the elements of column k of Q(z⁻¹) is calculated as

q _(i,k)(z ⁻¹)=a _(MPinv,k)(z ⁻¹)a _(i,k)(z ⁻¹)  (21)

for i=1, K, M and

r _(k,k)(z ⁻¹)=a _(MP,k)(z ⁻¹).  (22)

Finally, repeat (16) to (22) for the remaining columns of Q(z⁻¹).

Modified Gram Schmidt

Within the Modified Gram Schmidt, MGS, algorithm, the columns q_(k)(z⁻¹) of Q(z⁻¹) are sequentially (k=1, K, N) calculated. Compare with the Classical Gram Schmidt, CGS, algorithm where also each column of Q(z⁻) is sequentially calculated. However, while CGS calculates each column of R(z⁻¹) sequentially (see equation (16)), the MGS calculates each row of R(z⁻¹) sequentially.

First, define the matrix

A ^((k))(z ⁻¹)=└a ₁ ^((k))(z ⁻¹) a ₂ ^((k))(z ⁻¹) Λ a _(n) ^((k))(z ⁻¹)┘  (23)

with

A ⁽¹⁾(z ⁻¹)=H(z ⁻¹)  (24)

For k=1, the first column q₁(z⁻¹) of Q(z⁻¹) is defined as a normalized version of the first column a₁ ⁽¹⁾(z⁻¹) of A⁽¹⁾(z⁻¹). This normalization is done with a scalar minimum phase polynomial a_(MP,1)(z⁻¹), i.e. all roots of the polynomial are located inside the unit circle. A minimum phase polynomial is calculated from a spectral factorization of the squared second norm of the first column a₁ ⁽¹⁾(z⁻¹) of A⁽¹⁾(z⁻¹). Then, a new polynomial matrix A⁽²⁾(z⁻¹) will be calculated below, in which the projections of A⁽¹⁾(z⁻¹) on this first column of Q(z⁻¹) is subtracted. The second column of Q(z⁻¹) is then calculated as a normalized version of the second column of this A⁽²⁾(z⁻¹). The remaining columns of Q(z⁻¹) are sequentially calculated in the same fashion.

Below, a description is given for calculating column k of Q(z⁻¹) and row k of R(z⁻¹). This description is valid for k=1, K, N.

Denote the squared second norm of column k of A^((k))(z⁻¹) as

$\begin{matrix} {{s_{k}\left( z^{- 1} \right)} = {{{a_{k}^{{(k)}^{*T}}(z)}{a_{k}^{(k)}\left( z^{- 1} \right)}} = {\sum\limits_{i = 1}^{M}\; {{a_{ik}^{{(k)}^{*}}(z)}{a_{ik}^{(k)}\left( z^{- 1} \right)}}}}} & (25) \end{matrix}$

Also denote the minimum phase factor polynomial of (25) as

a _(MP,k)(z ⁻¹)=MinPhaseFactor{s _(k)(z ⁻¹)}.  (26)

See below for more details about spectral factorizations.

The inverse of this minimum phase polynomial in (26) is approximated by a FIR polynomial after long division as

$\begin{matrix} {{\frac{1}{a_{{MP},k}\left( z^{- 1} \right)} \approx {a_{{MPinv},k}\left( z^{- 1} \right)}} = {a_{{MPinv},k,0} + {a_{{MPnv},k,1}z^{- 1}} + K + {a_{{MPnv},k,L_{LD}}{z^{- L_{LD}}.}}}} & (27) \end{matrix}$

Since a_(MP,k)(z⁻¹) is minimum phase (all roots inside the unit circle), this FIR approximation is numerically good. Here, the length of the FIR approximation is considered as a design variable which must be selected with care. Now, the elements of column k of Q(z⁻¹) are calculated as

q _(i,k)(z ⁻¹)=a _(MPinv,k)(z ⁻¹)a _(i,k)(z ⁻¹)  (28)

for i=1, K, M.

The diagonal element in row k and column k of R(z⁻¹) is defined as

r _(k,k)(z ⁻¹)=a _(MP,k)(z ⁻¹)  (29)

and the off-diagonal elements of row k of R(z⁻¹) is calculated as

$\begin{matrix} {{r_{k,j}(z)} = {{{q_{k}^{*T}(z)}{a_{j}^{(k)}\left( z^{- 1} \right)}} = {\sum\limits_{i = 1}^{M}\; {{q_{i,k}^{*}(z)}{a_{i,j}^{(k)}\left( z^{- 1} \right)}}}}} & (30) \end{matrix}$

for j=k+1, K, N.

In order to proceed with the next column of Q(z⁻¹), a new polynomial matrix A^((k+1))(z⁻¹) is defined in which the projections of A^((k))(z⁻¹) on the recently calculated column k of Q(z⁻¹) is subtracted. Thus, define column j of the matrix A^((k+1))(z⁻¹), for k≧1, as

a _(j) ^((k+1))(z ⁻¹)=a _(j) ^((k))(z ⁻¹)−q _(k)(z ⁻¹)r _(k,j)(z ⁻¹).  (31)

for j=k+1, K, N.

The remaining columns of Q(z⁻¹) are calculated by increasing k and repeat (25) to (31).

Spectral Factorization

Consider the polynomial element in row i and in column j of a polynomial matrix A(z⁻¹)

$\begin{matrix} \begin{matrix} {{{a_{i,j}\left( z^{- 1} \right)} =}\;} \\ {= {a_{i,j,0} + {a_{i,j,1}z^{- 1}} + {a_{i,j,2}z^{- 2}} + K + {a_{i,j,L}z^{- L}}}} \\ {= {{a_{i,j,0} \cdot z^{- L}}{\underset{z_{m} \in Q_{in}^{({i,j})}}{\Pi}\left( {z - z_{m}} \right)}{\underset{z_{m} \in Q_{out}^{({i,j})}}{\Pi}\left( {z - z_{m}} \right)}}} \end{matrix} & (32) \end{matrix}$

where

z _(m) εQ _(in) ^((i,j)) if |z _(m)|²<1  (33)

and

z _(m) εQ _(out) ^((i,j)) if |z _(m)|²≧1  (34)

The squared second norm of column k of A(z⁻¹)

$\begin{matrix} {{s_{k}\left( z^{- 1} \right)} = {\sum\limits_{i = 1}^{M}\; {{a_{ik}\left( z^{- 1} \right)}{a_{ik}^{*}(z)}}}} & (35) \end{matrix}$

can then be modeled by the individual roots of the elements in A(z⁻¹)

$\begin{matrix} {{s_{k}\left( z^{- 1} \right)} = {\sum\limits_{i = 1}^{M}\; \left( {{a_{i,k,0} \cdot {\underset{z_{m} \in Q_{in}^{({i,k})}}{\Pi}\left( {z - z_{m}} \right)}}{\underset{z_{m} \in Q_{out}^{({i,k})}}{\Pi}\left( {z - z_{m}} \right)}{\underset{z_{m} \in Q_{in}^{({i,k})}}{\Pi}\left( {z^{- 1} - z_{m}^{*}} \right)}{\underset{z_{m} \in Q_{out}^{({i,k})}}{\Pi}\left( {z^{- 1} - z_{m}^{*}} \right)}} \right)}} & (36) \end{matrix}$

or by the roots of the polynomial

$\begin{matrix} {{s_{k}\left( z^{- 1} \right)} = {a_{k}{\underset{z_{m} \in Q_{in}^{(k)}}{\Pi}\left( {z - z_{m}} \right)}{\underset{z_{m} \in Q_{out}^{(k)}}{\Pi}\left( {z - z_{m}} \right)}{\underset{z_{m} \in Q_{in}^{(k)}}{\Pi}\left( {z^{- 1} - z_{m}^{*}} \right)}{\underset{z_{m} \in Q_{out}^{(k)}}{\Pi}\left( {z^{- 1} - z_{m}^{*}} \right)}}} & (37) \end{matrix}$

where

$\begin{matrix} {\left. {z_{m} \in {Q_{in}^{(k)}\mspace{14mu} {if}}}\mspace{14mu} \middle| z_{m} \middle| {}_{2}{< 1} \right.,} & (38) \\ {\left. {z_{m} \in {Q_{out}^{(k)}\mspace{14mu} {if}}}\mspace{20mu} \middle| z_{m} \middle| {}_{2}{\geq 1} \right.{{{and}\mspace{14mu} \alpha_{k}} = \left. {\sum\limits_{i = 1}^{M}\; \sum\limits_{m = 0}^{L}}\; \middle| a_{i,k,m} \middle| {}_{2}. \right.}} & (39) \end{matrix}$

The spectral factorization of s_(k)(z⁻¹) into minimum phase polynomials equals

s _(k)(z ⁻¹)=a _(MP,k)(z ⁻¹)a _(MP,k)*(z).  (40)

such that

$\begin{matrix} {{a_{{MP},k}\left( z^{- 1} \right)} = {{\beta_{k} \cdot z^{- L}}{\underset{z_{m} \in Q_{in}^{(k)}}{\Pi}\left( {z - z_{m}} \right)}{\underset{z_{m} \in Q_{out}^{(k)}}{\Pi}\left( {z - \frac{1}{z_{m}^{*}}} \right)}}} & (41) \end{matrix}$

where β_(k)=√{square root over (α_(k))}. Thus, the polynomial a_(MP,k)(z⁻¹) has all roots inside the unit circle.

Several algorithms for calculation of this spectral factorization are available. For example, the roots of the polynomial s_(k)(z⁻¹) can be explicitly calculated such that the minimum phase spectral factorization is calculated from (41). Alternatively, the method as described in U.S. Pat. No. 6,826,226 can be used. The process of calculating the minimum phase factor a_(MP,k)(z⁻¹) from s_(k)(z⁻¹) is denoted as

a _(MP,k)(z ⁻¹)=MinPhaseFactor{s _(k)(z ⁻¹)}.  (42)

Polynomial Truncation

The polynomial multiplications included in the Classical Gram Schmidt algorithm are listed in table 1. The polynomial channel matrix H(z⁻¹) is used as input.

TABLE 1 Minimum power of z⁻¹ Maximum power of z⁻¹ Polynomial operation Unconstrained Truncated Unconstrained Truncated ${s_{1}\left( z^{- 1} \right)}\; = \; {{{h_{1}\left( z^{- 1} \right)}{h_{1}^{*T}(z)}} = {\sum\limits_{i = 1}^{M}{{h_{i\; 1}\left( z^{- 1} \right)}{h_{i\; 1}^{*}(z)}}}}$ −L L h_(MP,1)(z⁻¹) = MinPhaseFactor{s₁(z⁻¹)} 0 L $\frac{1}{h_{{MP},1}\left( z^{- 1} \right)} \approx {h_{{MPinv},1}\left( z^{.{- 1}} \right)}$ 0 L_(LD) q_(i,1)(z^(.−1)) = h_(MPinv,1)(z^(.−1))h_(i1)(z⁻¹) 0 −L_(Qnc) L_(LD) + L L_(Qc) r_(l,1)(z^(.−1)) = h_(MP,1)(z⁻¹) 0 −L_(Rnc) L L_(Rc) r_(j,k)(z) = q_(j) ^(*T)(z)h_(k)(z⁻¹) −L_(Qc) −L_(Rnc) L_(Qnc) + L L_(Rc) ${a_{k}\left( z^{- 1} \right)}\; = \; {{h_{k}\left( z^{- 1} \right)} - {\sum\limits_{i = 1}^{k - 1}{{r_{i,k}\left( z^{- 1} \right)}{q_{i}\left( z^{- 1} \right)}}}}$ −L_(Rnc) − L_(Qnc) −L_(Anc) L_(Rc) + L_(Qc) L_(Ac) ${s_{k}\left( z^{- 1} \right)} = {{{a_{k}^{*T}(z)}{a_{k}\left( z^{- 1} \right)}} = {\sum\limits_{i = 1}^{M}{{a_{i,k}^{*}(z)}{a_{i,k}\left( z^{- 1} \right)}}}}$ −L_(Ac) − L_(Anc) L_(Anc) + L_(Ac) a_(MP,1)(z⁻¹) = MinPhaseFactor{s_(k)(z⁻¹)} 0 L_(Anc) + L_(Ac) r_(k,k)(z^(.−1)) = a_(MP,k)(z^(.−1)) 0 −L_(Rnc) L_(Anc) + L_(Ac) L_(Rc) $\frac{1}{a_{{MP},k}\left( z^{- 1} \right)} \approx {a_{{MPinv},k}\left( z^{.{- 1}} \right)}$ 0 L_(LD) q_(i,1)(z^(.−1)) = a_(MPinv,k)(z^(.−1))a_(ik)(z⁻¹) −L_(Anc) −L_(Qnc) L_(LD) + L_(Ac) L_(Qc)

The polynomial multiplications included in the Modified Gram Schmidt algorithm are listed in table 2. As input to this algorithm, the matrix A⁽¹⁾(z⁻¹) is defined as A⁽¹⁾(z⁻¹)=H(z⁻¹).

TABLE 2 Minimum power of z⁻¹ Maximum power of z⁻¹ Polynomial operation Unconstrained Truncated Unconstrained Truncated s_(k)(z⁻¹) = a_(k) ^((k))(z⁻¹)a_(k) ^((k)) _(*T) (z) −L_(Anc) − L_(Ac) L_(Ac) + L_(Anc) a_(MP,k)(z⁻¹) = MinPhaseFactor{s_(k)(z⁻¹)} 0 L_(Ac) + L_(Anc) $\frac{1}{a_{{MP},k}\left( z^{- 1} \right)} \approx {a_{{MPinv},k}\left( z^{.{- 1}} \right)}$ 0 L_(LD) q_(i,1) = a_(MPinv,k)(z^(.−1))a_(ik) ^((k))(z⁻¹) −L_(Anc) −L_(Qnc) L_(LD) + L_(Ac) L_(Qc) r_(k,k)(z^(.−1)) = a_(MP,k)(z^(.−1)) 0 −L_(Rnc) L_(Ac) L_(Rc)

The polynomial degree for each polynomial multiplication in CGS and MGS are given in table 1 and table 2, respectively. Here the minimum power of z⁻¹ and maximum power of z⁻¹ are listed as functions of the degrees of the polynomials involved in the multiplications. These values are referred to as unconstrained. A convention is also included in table 1 and table 2 of the polynomial powers after multiplication. If the introduced polynomial degree is smaller than the unconstrained value, then the result of the polynomial multiplication is truncated.

The parameters L_(Qnc), L_(Qc), L_(Rnc), L_(Rc), L_(Anc), and L_(Ac) are design variables, which should be selected with care.

Channel after Pre-Filtering

The channels after pre-filtering are illustrated in FIG. 5. Here, the filters on the main diagonal are minimum-phase filters, i.e. the energy is concentrated to the first taps. This is also illustrated in FIG. 6 where the roots of the channels are shown. The pre-filtered channels on the main diagonal have all roots inside the unit circle, since these are minimum phase filters.

The channels after pre-filtering above the main diagonal are not minimum phase after pre-filtering, and can thus have roots both inside and outside the unit circle, see FIG. 6. Furthermore, the pre-filtered channels above the main diagonal might have non-causal values lager than zero, as illustrated in FIG. 5.

The channel after pre-filter is proposed to be calculated as a polynomial multiplication between the calculated pre-filter and the channel estimate, see illustration in the flow chart of FIG. 4. This channel after pre-filtering is in theory equal to the upper triangular polynomial matrix R(z⁻¹) from the QR-decomposition. However, approximations, polynomial truncations and limited calculation accuracy impacts the accuracy of the calculations of the MIMO pre-filter {tilde over (Q)}(z⁻¹). By using the same {tilde over (Q)}(z⁻¹) on the received signal and on the channel matrix H(z⁻¹) these inaccuracies are included in the calculated channel after pre-filtering.

The channel after pre-filtering can thus be calculated as

g _(i,j)(z ⁻¹)=q _(i)*^(T)(z ⁻¹)h _(j)(z ⁻¹)  (43)

The result of this polynomial multiplication can be truncated as indicted in table 3.

TABLE 3 Polynomial Minimum power of z⁻¹ Maximum power of z⁻¹ operation Unconstrained Truncated Unconstrained Truncated g_(i,j) (z·⁻¹) = − L_(Hnc) − L_(Qc) − L_(Gnc) L_(Hc) + L_(Qnc) − L_(Gnc) q_(i)*^(T) (z·⁻¹)h_(j) (z⁻¹)

An illustration of the whiteness of the noise after pre-filtering is given in FIG. 7. Here, the elements of

E{{tilde over (Q)}(z ⁻¹)W(n)({tilde over (Q)}(z)W(n−m))*^(T) }=Q* ^(T)(z ⁻¹)Q(z)·δ(n)=I·δ(n).  (44)

are illustrated which should be unity for time lag zero on the main diagonal and zero elsewhere. 

1-15. (canceled)
 16. A method in a radio receiver for demodulating data signals transmitted by a plurality of transmitting antennas over a radio channel, the method comprising: receiving, on a plurality of receiving antennas, a data signal and a reference signal, the contents of the reference signal being known a priori to the receiver; calculating, using the contents of the reference signal, an estimated polynomial channel matrix; calculating a decomposition of the estimated polynomial channel matrix into a product of a paraunitary polynomial matrix and an upper triangular polynomial matrix with minimum phase filters on its main diagonal; calculating a polynomial pre-filter matrix as the paraconjugate of the paraunitary polynomial matrix; and demodulating the received data signal where the received data signal is multiplied with the calculated polynomial pre-filter matrix.
 17. The method of claim 16, the method further comprising: calculating a pre-filtered polynomial channel matrix by multiplying the estimated polynomial channel matrix with the polynomial pre-filter matrix, thereby making the pre-filtered polynomial channel matrix upper triangular and with minimum phase filters on its main diagonal, wherein the demodulation of the received data signal further comprises using the pre-filtered polynomial channel matrix as the channel model in the demodulation.
 18. The method of claim 16, wherein the calculation of the decomposition comprises assigning, to the first column of the paraunitary polynomial matrix, a normalized version of the first column of the estimated polynomial channel matrix, and, for each current column from a second column to a last column of the channel matrix: calculating projections of the current column of the estimated polynomial channel matrix on the previous columns of the paraunitary polynomial matrix, calculating a difference polynomial vector as the difference between the current column of the estimated polynomial channel matrix and a product of the calculated projections multiplied by the previous columns of the paraunitary polynomial matrix, and assigning, to the current column of the paraunitary polynomial matrix, a normalized version of the calculated difference polynomial vector.
 19. The method of claim 18, wherein the normalization of the first column of the estimated polynomial channel matrix is performed by: normalizing with an inverse of a first scalar minimum phase polynomial, and the normalization of the respective calculated difference polynomial vectors is performed by: normalizing with an inverse of a respective current scalar minimum phase polynomial.
 20. The method of claim 19, wherein the first scalar minimum phase polynomial is obtained by: calculating a spectral factorization of the squared second norm of the first column of the estimated polynomial channel matrix, and the respective current scalar minimum phase polynomial is obtained by: calculating a spectral factorization of the squared second norm of the current difference polynomial vector.
 21. The method of claim 19, wherein the normalizations comprise: approximating the inverse of the scalar minimum phase polynomials with a respective finite impulse response polynomial after long division.
 22. The method of claim 19, wherein the calculation of the decomposition comprises assigning, to an auxiliary polynomial matrix, the elements of the estimated polynomial channel matrix, and, for each current column from a first column to a last column: assigning, to the current column of the paraunitary polynomial matrix, a normalized version of the current column of the auxiliary polynomial matrix, calculating projections of the auxiliary polynomial matrix on the current column of the paraunitary polynomial matrix, updating the auxiliary polynomial matrix by subtracting a product of the current column of the paraunitary polynomial matrix and the calculated projections from the auxiliary polynomial matrix.
 23. The method of claim 22, wherein the normalization of the columns of the auxiliary polynomial matrix is performed by normalizing with an inverse of a respective current scalar minimum phase polynomial.
 24. The method of claim 23, wherein the respective current scalar minimum phase polynomial is obtained by calculating a spectral factorization of the squared second norm of the current column of the auxiliary polynomial matrix.
 25. The method of claim 23, wherein the normalizations comprise approximating the inverse of the scalar minimum phase polynomials with a respective finite impulse response polynomial after long division.
 26. A radio receiver for demodulating data signals transmitted by a plurality of transmitting antennas over a radio channel, the receiver comprising control and communication circuitry configured to: receive, on a plurality of receiving antennas, a data signal and a reference signal, the contents of the reference signal being known a priori to the receiver; calculate, using the contents of the reference signal, an estimated polynomial channel matrix; calculate a decomposition of the estimated polynomial channel matrix into a product of a paraunitary polynomial matrix and an upper triangular polynomial matrix with minimum phase filters on its main diagonal; calculate a polynomial pre-filter matrix as the paraconjugate of the paraunitary polynomial matrix; and demodulate the received data signal where the received data signal is multiplied with the calculated polynomial pre-filter matrix.
 27. The radio receiver of claim 26, where the control and communication circuitry is further configured to: calculate a pre-filtered polynomial channel matrix by multiplying the estimated polynomial channel matrix with the polynomial pre-filter matrix, thereby making the pre-filtered polynomial channel matrix upper triangular and with minimum phase filters on its main diagonal, and use the pre-filtered polynomial channel matrix as the channel model in the demodulation.
 28. The radio receiver of claim 26, where the control and communication circuitry is further configured to assign, to the first column of the paraunitary polynomial matrix, a normalized version of the first column of the estimated polynomial channel matrix, and, for each current column from a second column to a last column of the channel matrix: calculate projections of the current column of the estimated polynomial channel matrix on the previous columns of the paraunitary polynomial matrix, calculate a difference polynomial vector as the difference between the current column of the estimated polynomial channel matrix and a product of the calculated projections multiplied by the previous columns of the paraunitary polynomial matrix, and assign, to the current column of the paraunitary polynomial matrix, a normalized version of the calculated difference polynomial vector.
 29. The radio receiver of claim 26, where the control and communication circuitry is further configured to assign, to an auxiliary polynomial matrix, the elements of the estimated polynomial channel matrix, and, for each current column from a first column to a last column: assign, to the current column of the paraunitary polynomial matrix, a normalized version of the current column of the auxiliary polynomial matrix, calculate projections of the auxiliary polynomial matrix on the current column of the paraunitary polynomial matrix, update the auxiliary polynomial matrix by subtracting a product of the current column of the paraunitary polynomial matrix and the calculated projections from the auxiliary polynomial matrix.
 30. A non-transitory computer-readable medium comprising, stored thereupon, a computer program product comprising software instructions that, when executed in a processor of a radio receiver, causes the radio receiver to demodulate data signals transmitted by a plurality of transmitting antennas over a radio channel by: receiving, via a plurality of receiving antennas, a data signal and a reference signal, the contents of the reference signal being known a priori to the receiver; calculating, using the contents of the reference signal, an estimated polynomial channel matrix; calculating a decomposition of the estimated polynomial channel matrix into a product of a paraunitary polynomial matrix and an upper triangular polynomial matrix with minimum phase filters on its main diagonal; calculating a polynomial pre-filter matrix as the paraconjugate of the paraunitary polynomial matrix; and demodulating the received data signal where the received data signal is multiplied with the calculated polynomial pre-filter matrix. 